<?php 
class Parametro extends AppModel {
    var $name = 'Parametro';
 
    var $validate = array(
        'param_nombre' => array(
            'regla1' => array( 
                // solo numeros enteros positivos - i: case insensitive
                'rule'    => '/^[a-z0-9\s]{3,200}$/i',
                'allowEmpty' => false,
                'message' => 'El código del parámetro no es un valor válido.'
            ),
            'regla2' => array( 
                // custom rule para controlar duplicados
                'rule' => array('existeOtro'),
                'message' => 'El número de mesa usado ya existe.'
            ),
        ),
    );
       
    public function existeOtro() {
        // busca que no haya otro id con el mismo campo codigo
        $filtro_dup = array('Parametro.id !=' => $this->id,             
                            'Parametro.param_nombre' => $this->data['Parametro']['param_nombre']);
        $cantExistentes = $this->find('count', array(
            'conditions' => $filtro_dup,
            'recursive' => -1
        ));
        return $cantExistentes == 0;
    }    
}
?>